const valiextend = {
  //手机号
  phone: (rule, value, callback) => {
    // const patter = new RegExp('^1\d{10}$')
    // const patter = new RegExp('^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$')
    const patter = /^1\d{10}$/
    if (!patter.test(value)) {
      return callback(new Error('请输入正确格式的手机号！'))
    } else {
      callback() // 必须有此项回调，否则验证会一直不通过
    }
  },
  //email
  email: (rule, value, callback) => {
    const mailbox = new RegExp(
      '^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*.[a-zA-Z0-9]{2,6}$'
    )
    if (!mailbox.test(value)) {
      return callback(new Error('请输入正确格式的邮箱！'))
    } else {
      callback()
    }
  },
  //身份证
  IdCardNo: (rule, value, callback) => {
    const mailbox =
      /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9X]$/
    if (!mailbox.test(value)) {
      return callback(new Error('请输入正确格式的身份证号！'))
    } else {
      callback()
    }
  },
  //url验证
  url: (rule, value, callback) => {
    const objExp = new RegExp(
      '((http|ftp|https)://)(([a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\\&%_\\./-~-]*)?'
    )
    if (!objExp.test(value)) {
      return callback(new Error('请输入正确格式的url！'))
    } else {
      callback()
    }
  },
  number: (rule, value, callback) => {
    const regnumber = new RegExp('^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$')
    if (!regnumber.test(value)) {
      return callback(new Error('请输入大于0的数字'))
    } else callback()
  },
  integer: (rule, value, callback) => {
    const regint = new RegExp('^([0-9]*)$')
    if (!regint.test(value)) {
      return callback(new Error('请输入整数'))
    } else callback()
  },
  passwordValid: (rule, value, callback) => {
    if (
      !/^.*[A-Za-z]{1,}.*$/.test(value) ||
      !/^.*[0-9]{1,}.*$/.test(value) ||
      !/^.*[-`=\[\];',\.~!@#\$%\^&\*\(\)_\+\|\{\}:\"\?]{1,}.*$/.test(value) ||
      !(value.length >= 8 && value.length <= 16)
    ) {
      return callback(new Error('请输入8~16位至少包含三种字符的密码！'))
    } else {
      callback()
    }
  }
}

export default valiextend
